Method and system for causing a browser to preload web page components

ABSTRACT

Disclosed is a server computer that receives, over a network from a computing device, a request for a search suggestion related to a search query that is input into a search term entry area displayed by a web browser executing on the computing device. In response to receiving the request, the server computer transmits over the network to the computing device, instructions for the computing device to display a search suggestion related to the search query, the search suggestion corresponding to a search results web page. The instructions further cause the computing device to store, in a memory of the computing device, a web page component associated with the search results web page without causing the computing device to visibly display the web page component during display of the search suggestion.

FIELD

The present disclosure relates to web pages, and more specifically tocausing a web browser to preload web page components to enable fasterloading of web pages using the preloaded web page components.

BACKGROUND

When a user uses a web browser to navigate to a particular web site, theweb browser typically performs a Domain Name System (DNS) lookup inorder to resolve the textual domain name of the web site to a physicalInternet Protocol (IP) address. Once the web browser obtains the IPaddress of the domain name, the web browser can then retrieve web pagesof the web site because the web browser has determined the server tonavigate to (via the IP address). This DNS lookup takes time and oftenslows down a user's experience on the web.

Further, when a user uses a web browser to navigate to a particular webpage for the first time, the web browser typically has to retrieve webpage components (e.g., images) associated with the particular web pagebefore the web browser can display the web page. Even if the user hasnavigated to the particular web page in the past, the web browser mayhave to retrieve the web page components associated with the particularweb page if the web page components are not already stored by the user'scomputer. Like a DNS lookup, this retrieval of web page componentsassociated with a particular web page takes time and again slows down auser's experience on the web.

SUMMARY

The present disclosure relates to causing a web browser to preload webpage components to enable faster loading of web pages using thepreloaded web page components.

In one aspect, a server computer receives, over a network from acomputing device, a request for a search suggestion related to a searchquery that is input into a search term entry area displayed by a webbrowser executing on the computing device. In response to receiving therequest, the server computer transmits over the network to the computingdevice, instructions for the computing device to display a searchsuggestion related to the search query, the search suggestioncorresponding to a search results web page. The instructions furthercause the computing device to store, in a memory of the computingdevice, a web page component associated with the search results web pagewithout causing the computing device to visibly display the web pagecomponent during display of the search suggestion. In one embodiment,the instructions include instructions for the computing device todisplay a plurality of search suggestions related to the search query,where each search suggestion in the plurality corresponds to a searchresults web page. In one embodiment, when the server transmits thesearch results web page to the computing device for display, thecomputing device uses the stored web page component when displaying thesearch results web page.

In one embodiment, the web page component includes a selected web pageasset identified as part of the search results web page. Thetransmitting of the instructions to cause the computing device to storea web page component without causing the computing device to display theweb page component can further include transmitting instructions to thecomputing device that set the width and height of the web page componentto a small number of pixels (e.g., zero or one pixels) so that the webpage component is hidden from view when the computing device displaysthe search suggestion.

In one embodiment, an expire time is set for the web page component,where the expire time corresponds to a date and time upon which the webpage component will no longer be stored by the computing device.

In one embodiment, the transmitting of instructions for the computingdevice to display a search suggestion related to the search queryfurther includes setting a cookie with a timestamp. In one embodiment,the server computer receives a second request for a second searchsuggestion related to a second search query. The server computer checksthat the time period associated with the timestamp of the cookie has notelapsed and, if the time period has not elapsed, the server computertransmits instructions to the computing device for the computing deviceto display a search suggestion related to the second search query. Theinstructions further cause the computing device to store a web pagecomponent associated with a search results web page corresponding to thesearch suggestion related to the second search query. In one embodiment,if the time period has elapsed, the server computer transmitsinstructions for the computing device to display a search suggestionrelated to the second search query without causing the computing deviceto store a web page component associated with a search results web pagecorresponding to the search suggestion related to the second searchquery.

In another aspect, a server computer hosts a web page component on a webpage having a domain name. The server computer receives, over a networkfrom a computing device, a request for a search suggestion related to asearch query that is input into a search term entry area displayed by aweb browser executing on the computing device. The server computertransmits in response to the request, over the network to the computingdevice, instructions for the computing device to display a searchsuggestion related to the search query, the search suggestioncorresponding to a search results web page, wherein the instructionsfurther cause the computing device to perform a Domain Name System (DNS)lookup of the domain name of the web page, cause the computing device tostore, in a memory of the computing device, the IP address associatedwith the domain name, and cause the computing device to download, butnot visibly display during the display of the search suggestion, the webpage component. In one embodiment, when the server transmits the searchresults web page to the computing device for display, the computingdevice uses the stored IP address associated with the domain name sothat the computing device does not have to perform a DNS lookup.Further, in one embodiment, the computing device uses the stored webpage component when displaying the search results web page.

These and other aspects and embodiments will be apparent to those ofordinary skill in the art by reference to the following detaileddescription and the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawing figures, which are not to scale, and where like referencenumerals indicate like elements throughout the several views:

FIG. 1 is a block diagram of a computing device communicating with a webserver over a network in accordance with an embodiment of the presentdisclosure;

FIG. 2 is a flowchart illustrating the steps performed by the web serverof FIG. 1 to cause the computing device to store a web page componentassociated with a search results web page in accordance with anembodiment of the present disclosure;

FIG. 3 is a screen shot displayed by a web browser on the computingdevice illustrating an address bar and a search term entry area inaccordance with an embodiment of the present disclosure;

FIGS. 4 and 5 show embodiments of search suggestions being displayedbelow the search term entry area in the browser in accordance with anembodiment of the present disclosure;

FIG. 6 shows an embodiment of an illustration of the number of requestsmade by the web browser in accordance with an embodiment of the presentdisclosure;

FIG. 7 shows an example of a search results web page in accordance withan embodiment of the present disclosure;

FIG. 8 is a flowchart illustrating the steps performed by the web serverof FIG. 1 to cause the computing device to store a web page componentassociated with a search results web page in accordance with anotherembodiment of the present disclosure;

FIG. 9 is a block diagram of a computing device communicating with a webserver and a DNS server over a network in accordance with an embodimentof the present disclosure;

FIG. 10 is a flowchart illustrating the steps performed by the webserver of FIG. 9 to cause the computing device to store the IP addressassociated with a domain name in accordance with an embodiment of thepresent disclosure; and

FIG. 11 is a block diagram illustrating an internal architecture of acomputing device in accordance with an embodiment of the presentdisclosure.

DESCRIPTION OF EMBODIMENTS

Embodiments are now discussed in more detail referring to the drawingsthat accompany the present application. In the accompanying drawings,like and/or corresponding elements are referred to by like referencenumbers.

Various embodiments are disclosed herein; however, it is to beunderstood that the disclosed embodiments are merely illustrative of theinvention that can be embodied in various forms. In addition, each ofthe examples given in connection with the various embodiments isintended to be illustrative, and not restrictive. Further, the figuresare not necessarily to scale, some features may be exaggerated to showdetails of particular components (and any size, material and similardetails shown in the figures are intended to be illustrative and notrestrictive). Therefore, specific structural and functional detailsdisclosed herein are not to be interpreted as limiting, but merely as arepresentative basis for teaching one skilled in the art to variouslyemploy the disclosed embodiments.

FIG. 1 shows a block diagram of an embodiment of a computing device 105communicating with a web server 110 over a network 115. FIG. 2 is aflowchart showing an embodiment of steps performed by the web server110. A user of the computing device 105 uses a web browser 118 executingon the computing device 105 to, for example, perform a web search and/ornavigate to a web page. When a user wants to perform a web search (e.g.,for particular web pages containing specific subject matter), the usertypically inputs (e.g., types) a search query into a search term entryarea. The search term entry area can be an area that is part of the webbrowser itself, or can be part of a web page that is being displayed bythe web browser.

When the user inputs the search query, in one embodiment the computingdevice 105 (e.g., the web browser 118) transmits a request 120 for oneor more search suggestions related to the search query. As used herein,a “search query” is any symbol or character that is input into a searchterm entry area. A search query can be a letter, a symbol, a part of aword, a complete word, more than one word, etc. Thus, in one embodiment,the request 120 for a search suggestion can be transmitted after apredetermined time period has elapsed after an input is received in thesearch term entry area. Additionally, many requests 120 can betransmitted from the computing device 105 to the web server 110 as theinput into the search term entry area changes.

For example, a user may intend to input the word “example” into a searchterm entry area. In one embodiment, the computing device 105 transmits afirst request for a search suggestion after the user has typed “exa”into the search term entry area (where “exa” is, in this example, afirst search query). The computing device 105 then transmits a secondrequest for a search suggestion after the user has typed “examp” intothe search term entry area (where “examp” is, in this example, a secondsearch query). The computing device 105 then transmits a third requestfor a search suggestion when the user has completed typing the word“example” into the search term entry area (where “example” is, in thisexample, a third search query). Thus, any number of requests 120 forsearch suggestions can be transmitted by the computing device 105 to theweb server 110.

The web server 110 receives the request 120 for a search suggestion(step 205) and, in response to the request, transmits browserinstructions 130 related to the search suggestion (step 210) to the webbrowser 118. In one embodiment, the browser instructions 130 instructthe web browser 118 to display a particular search suggestion (ormultiple search suggestions) related to the search query. In oneembodiment, the browser instructions 130 are in an eXtensible MarkupLanguage (XML) document. As described in more detail below (see, e.g.,FIG. 7), in one embodiment the search suggestion corresponds to a searchresults web page. As used herein, a search results web page is a webpage that provides search results (e.g., a listing of web page links toother web pages as well as information (e.g., text and/or an image)retrieved from the web page associated with the link) that correspond tothe search suggestion. When a user selects (e.g., clicks on) a searchsuggestion, the web browser 118 then displays the corresponding searchresults web page.

In one embodiment, the browser instructions 130 additionally includeinstructions for the browser 118 (or computing device 105) to store, inmemory 140, a web page component 150 associated with the search resultsweb page (step 215) corresponding to the search suggestion. In oneembodiment, the instructions 130 do not cause the browser 118 to visiblydisplay the web page component 150 during display of the searchsuggestion. In one embodiment, if the web server 110 transmits browserinstructions 130 for the browser 118 to display multiple searchsuggestions related to a search query, the instructions 130 can furtherinclude instructions for the browser 118 to store multiple web pagecomponents 150, where each web page component is related to one (ormore) search results web page(s). The memory 140 can be any type ofmemory or storage associated with the computing device 105, such ascache (e.g., browser cache), Random Access Memory (RAM), a hard drive,etc. In one embodiment, steps 210 and 215 occur at the same time (orapproximately the same time). In another embodiment, steps 210 and 215occur sequentially.

The web page component 150 is any web page asset identified as part ofor associated with a search results web page. Examples of the web pagecomponent 150 include, but are not limited to, images (e.g., png, gif,jpeg, bmp, wbmp, ico, tiff, svg, ai, eps, ps), scripts (e.g.,JavaScript/ECMAScript files, Visual Basic Script (VBScript) files,etc.), programming code (e.g., cpp, php, rb, py, perl, bat, sh, asp,jsp, java), executables (e.g., exe, cmd, class), binaries (e.g., bin,dll, so, iso, lzh), CSS Stylesheets, Audio files (e.g., mp3, ogg, aiff,midi, way), video files (e.g., avi, mpeg, mov, fly, m4v, wmv), HTML,XML, XHTML, MathML, VML, RDF, DTD, SGML, SMIL, SOAP, KML, plain textfiles (e.g., txt, csv, conf, log, in, ini), JavaScript Object Notation(JSON) files, archives (e.g., zip, rar, jar, gz, bzip, tar, mht),Shockwave Flash/Adobe Flash (e.g., swf), documents (e.g., Word doc, PDF,RTF, ODT), spreadsheets, presentation files, and/or a feed (e.g., Atom,RSS).

Thus, the downloading of a web page component associated with a searchresults web page occurs before or during the display of a searchsuggestion, and therefore before the web browser 118 displays a searchresults web page. As a result, when a user selects (e.g., clicks on) aparticular search suggestion, the browser 118 can load the correspondingsearch results web page faster because one or more web page components150 used in the search results web page is already stored by the browser118 in memory 140 (e.g., in browser cache). The browser 118 does nothave to retrieve the web page component(s) 150 after the user selects aparticular search results web page.

In one embodiment, the web server 110 also transmits (as part of thebrowser instructions 130) an expire time for the web page component 150.The expire time can correspond to a date and time upon which the webpage component 150 will no longer be stored by the computing device 105.

For purposes of this disclosure (and as described in more detail belowwith respect to FIG. 11), a computer or computing device such as thecomputing device 105 and/or web server 110 includes a processor andmemory for storing and executing program code, data and software whichmay also be tangibly stored or read from any type or variety of wellknown computer readable storage media such as magnetic or optical discs,by way of non-limiting example. Computers can be provided with operatingsystems that allow the execution of software applications in order tomanipulate data. Personal computers, personal digital assistants (PDAs),wireless devices, cellular telephones, internet appliances, mediaplayers, home theater systems, servers, and media centers are severalnon-limiting examples of computing devices. The computing device 105 andthe server 110 can, in one embodiment, also include a display, such as ascreen or monitor.

FIG. 3 is a screen shot displayed by the web browser 118 illustrating anembodiment of an address bar 305 and a search term entry area 310. Asstated above, the search term entry area 310 can be part of the browser118 itself (as shown), or it may be part of a web page being displayedby the web browser 118. Suppose that the web browser 118 is InternetExplorer 8 (IE8) (developed by Microsoft Corporation of Redmond,Washington). Using the example above, when a user of the web browser 118types the word “example” into the search term entry area 310, the webbrowser 118 sends request 120 to the web server 110. Further supposethat the web server 110 is a Yahoo! search server (developed by Yahoo!Inc. of Sunnyvale, Calif.). As an example, the Uniform Resource Locator(URL) of the request 120 may be:

http://ie.search.yahoo.com/os?appid=ie8&command=example

In one embodiment, in response to receiving the request 120, the webserver 110 transmits an XML document to the web browser 118. In oneembodiment, the XML document looks as follows:

<?xml version=“1.0”?> <SearchSuggestion version=“2.0”xmlns=“http://opensearch.org/searchsuggest2”> <Query>example</Query><Section title=“Yahoo! Search Suggestions”> <Item><Text>example ofresume</Text></Item> <Item><Text>example of resignationletter</Text></Item> .... <Item><Text>annotated bibliographyexample</Text></Item> </Section> </SearchSuggestion>FIGS. 4 and 5 show an embodiment of the search suggestions 405, 505being displayed below the search term entry area 410, 510 in the browser118.

As described above, the web server 110 transmits to the web browser 118a web page component 150 associated with a search results web pagecorresponding to a search suggestion, even when the web page component150 is not needed by the search suggestion. The web page component 150is needed once the user clicks on the search suggestion and is directedto the search results web page.

An example of the relevant part of the XML document provided by the webserver 110 as part of the browser instructions 130 to the browser 118 isas follows:

<Item> <Text>example of resume</Text> <Imagesource=“http://a.l.yimg.com/a/i/us/sch/gr4/ngsprt_20090618.png”width=“0” height=“0”/> </Item>The web browser 118 receives this XML document, downloads the image (webpage component) fromhttp://a.l.yimg.com/a/i/us/sch/gr4/ngsprt_20090618.png, and stores theimage in its memory 140. The web browser 118 does not visibly displaythe image because the height and width of the image are defined as 0×0pixels (the height and width of the image could instead be defined as1×1 pixels, for example). FIG. 6 shows an embodiment of an illustrationof the number of requests made by the web browser 118. The web browser118 makes two requests in this example—a first request 605 for searchsuggestions related to the word “example” that was input into the searchterm entry area 610, and a second request 615 to download the image(ngsprt_20090618.png) in response to receiving the command in thebrowser instructions 130 of <Imagesource=“http://a.1.yimg.com/a/i/us/sch/gr4/ngsprt_20090618.png”width=“0” height=“0”/>. The user then clicks on one of the searchsuggestions 620, and the browser 118 navigates to the correspondingsearch results web page. In one embodiment, the image or images that thebrowser 118 stored (e.g., cached) will not be requested again, resultingin a faster user experience.

FIG. 7 shows an example of a search results web page 700. Examples ofimages that the browser 118 may have been instructed to prefetch andstore in its memory 140 include the Yahoo! logo 705 and/or any one ormore of the flower images 710, 715, 720.

As described above, in one embodiment the computing device 105 transmitsmultiple requests for search suggestions, one request for each searchquery input into the search term entry area (e.g., a first request for“exa”, a second request for “examp”, and a third request for “example”,as the user is typing “example” into the search term entry area). In oneembodiment, the web server 110 transmits browser instructions 130 to theweb browser 118 only one time (or a set number of times) as the user istyping “example” into the search term entry area so that a web pagecomponent 150 for a search results web page corresponding to the searchquery “example” is prefetched and stored by the browser 118 one time. Tohave the browser 118 only store the web component 150 one time (or a setnumber of times) as the user is typing a word into the search term entryarea, in one embodiment the web server 110 sets a software cookie.

FIG. 8 is a flowchart illustrating an embodiment of the steps performedby the web server 110 to cause the computing device 105 to store the webpage component 150. Steps 805-815 are steps that were described above(with respect to FIG. 2). In step 820, the web server 110 sets a cookiewith a time period to indicate that the caching of the web pagecomponent 150 has been completed. In one embodiment, steps 810, 815, and820 occur at the same time (or at approximately the same time). Inanother embodiment, these steps occur sequentially. The web server 110then receives, from the computing device 105 (web browser 118), a secondrequest for a search suggestion related to a further search query (e.g.,“examp” after already receiving a request for a search suggestionrelated to a search query of “exa”) (step 825). The web server 110 thendetermines whether the time period of the cookie has elapsed (step 830).

If the time period has not elapsed, the web server 110 transmitsinstructions for the computing device 105 to display a search suggestionand store in memory 140 a web page component 150 (step 840). In oneembodiment, the browser 118 downloads the web page component 150 afterverifying that the web page component 150 is not already stored in thememory 140. If the time period has elapsed, the web server 110 transmitsinstructions for the computing device 105 to display a search suggestionbut does not include instructions to download a web page component(because, since the time period associated with the cookie has elapsed,it is highly likely that the web page component has already beendownloaded and stored in memory 140). In one embodiment, the time periodassociated with the cookie is 10-15 seconds after the initial setting ofthe cookie.

In one embodiment, the computing device 105 preloads and stores (e.g.,caches) Domain Name System (DNS) lookups. When a person types a URL intothe address bar of the web browser 118, the web browser 118 has toresolve this textual web address into a physical IP address of thecorrect web server hosting the web page associated with the URL. This isreferred to as a DNS lookup. DNS lookups are needed to find domains. Forexample, in the web address: http://www.example.org/image.png, thedomain is www.example.org. Thus, if the web browser 118 needs to loadseveral images: 1) http://www.example.org/image1.png; 2)http://www.example.org/image2.png; and 3)http://www.example.org/image3.png, the web browser 118 needs to make oneDNS lookup to match www.example.org to an IP address.

In one embodiment, the web browser 118 can preload DNS lookups so thatthe process does not slow down the user when the user requests tonavigate to the actual web page. FIG. 9 shows a block diagram of anembodiment of the computing device 105 communicating with the web server110 and a DNS server 905 over network 115. FIG. 10 is a flowchartillustrating the steps performed by the web server 110 of FIG. 9 tocause the computing device 105 to store an IP address associated with adomain name before the IP address is needed by the browser 118.

In one embodiment, the web server 110 hosts a web page component (e.g.,an image associated with a particular web page) on a web page having adomain name. As described above, the web browser 118 transmits and theweb server 110 receives a request 120 for a search suggestion related toa search query (step 1005). The web server 110 transmits browserinstructions 130 related to a search suggestion to the web browser 118.As described above, the browser instructions 130 include instructionsfor the web browser 118 to display a search suggestion related to thequery, where the search suggestion corresponds to a search results webpage (step 1010). In one embodiment, the browser instructions 130further cause the computing device 105 to perform a DNS lookup 910 ofthe domain name of the web page, store in memory 140 the IP address 915associated with the domain name, and download (and store), but notvisibly display during the display of the search suggestion, the webpage component (step 1015).

As an example, suppose a company's web pages are hosted onwww.example.org and the images associated with these web pages arehosted on images.example.org. Search suggestions are provided fromhttp://www.example.org/suggest.php?search=SEARCHTERM. Further supposethat the company wants to cache the DNS lookups to images.example.org inorder to speed up the loading of the web pages hosted onwww.example.org. It should be noted that www.example.org andimages.example.org are considered two different domains that each needsa DNS lookup.

In one embodiment, the company can host a small (0×0 pixels or 1×1pixels) image (dot.png) at http://images.example.org/dot.png. If a usertypes “test” in the search term entry area, the web browser 118transmits a request 120 for a search suggestion tohttp://www.example.org/suggest.php?search=test. The web server 110responds with the following browser instructions 130 (e.g., in an XMLdocument):

<?xml version=“1.0”?> <SearchSuggestion version=“2.0”xmlns=“http://opensearch.org/searchsuggest2”> <Query>test</Query><Section title=“Search Suggestions”> <Item> <Text>test search</Text><Image source=“http://images.example.org/dot.png” width=“0” height=“0”/></Item> <Item> <Text>IQ test</Text> </Item> ... <Item><Text>mytest</Text></Item> </Section> </SearchSuggestion>

In one embodiment, the web browser 118 then downloads the 0×0 image(dot.png) from http://images.example.org/dot.png. In order to do so, theweb browser 118 needs to do a DNS lookup and store (e.g., cache) theassociated IP address. The web browser 118 doesn't display the dot.pngimage because it has a height and width of 0×0 pixels in the browserinstructions 130. The web browser 118 displays the www.example.org pageand the DNS lookup is already cached, which saves time and improves theuser experience.

FIG. 11 is a block diagram illustrating an internal architecture of acomputing device, such as web server 110 and/or computing device 105, inaccordance with one or more embodiments of the present disclosure. Asshown in FIG. 11, internal architecture 1100 includes one or moreprocessing units (also referred to herein as CPUs) 1112, which interfacewith at least one computer bus 1102. Also interfacing with computer bus1102 are fixed disk 1106, network interface 1114, memory 1104, e.g.,random access memory (RAM), run-time transient memory, read only memory(ROM), etc., media disk drive interface 1108 as an interface for a drivethat can read and/or write to media including removable media such asfloppy, CD-ROM, DVD, etc. media, display interface 1110 as interface fora monitor or other display device, keyboard interface 1116 as interfacefor a keyboard, pointing device interface 1118 as an interface for amouse or other pointing device, and miscellaneous other interfaces notshown individually, such as parallel and serial port interfaces, auniversal serial bus (USB) interface, and the like.

Memory 1104 interfaces with computer bus 1102 so as to provideinformation stored in memory 1104 to CPU 1112 during execution ofsoftware programs such as an operating system, application programs,device drivers, and software modules that comprise program code, and/orcomputer-executable process steps, incorporating functionality describedherein, e.g., one or more of process flows described herein. CPU 1112first loads computer-executable process steps from storage, e.g., memory1104, storage 1106, removable media drive, and/or other storage device.CPU 1112 can then execute the stored process steps in order to executethe loaded computer-executable process steps. Stored data, e.g., datastored by a storage device, can be accessed by CPU 1112 during theexecution of computer-executable process steps.

Persistent storage 1106 is a computer readable storage medium that canbe used to store an operating system and one or more applicationprograms. Persistent storage can also be used to store device drivers,such as one or more of a digital camera driver, monitor driver, printerdriver, scanner driver, or other device drivers, web pages, contentfiles, playlists and other files. Persistent storage can further includeprogram modules and data files used to implement one or more embodimentsof the present disclosure.

For the purposes of this disclosure a computer readable storage mediumstores computer data, which data can include computer program codeexecutable by a computer, in machine readable form. Computer storagemedia includes volatile and non-volatile, removable and non-removablemedia implemented in any method or technology for storage of informationsuch as computer-readable instructions, data structures, program modulesor other data. Computer storage media includes, but is not limited to,RAM, ROM, EPROM, EEPROM, flash memory or other solid state memorytechnology, CD-ROM, DVD, or other optical storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand which can be accessed by the computer.

Those skilled in the art will recognize that the methods and systems ofthe present disclosure may be implemented in many manners and as suchare not to be limited by the foregoing exemplary embodiments andexamples. In other words, functional elements being performed by singleor multiple components, in various combinations of hardware and softwareor firmware, and individual functions, may be distributed among softwareapplications at either the client or server or both. In this regard, anynumber of the features of the different embodiments described herein maybe combined into single or multiple embodiments, and alternateembodiments having fewer than, or more than, all of the featuresdescribed herein are possible. Functionality may also be, in whole or inpart, distributed among multiple components, in manners now known or tobecome known. Thus, myriad software/hardware/firmware combinations arepossible in achieving the functions, features, interfaces andpreferences described herein. Moreover, the scope of the presentdisclosure covers conventionally known manners for carrying out thedescribed features and functions and interfaces, as well as thosevariations and modifications that may be made to the hardware orsoftware or firmware components described herein as would be understoodby those skilled in the art now and hereafter.

While the system and method have been described in terms of one or moreembodiments, it is to be understood that the disclosure need not belimited to the disclosed embodiments. It is intended to cover variousmodifications and similar arrangements included within the spirit andscope of the claims, the scope of which should be accorded the broadestinterpretation so as to encompass all such modifications and similarstructures. The present disclosure includes any and all embodiments ofthe following claims.

What is claimed is:
 1. A method comprising: receiving, by a servercomputer over a network from a computing device, a first request forsearch suggestions related to a first search query that has been inputinto a search term entry area displayed by a web browser executing onthe computing device; transmitting in response to the first request, bythe server computer over the network to the computing device,instructions for the computing device to display a plurality of searchsuggestions related to the first search query, each of plurality of thesearch suggestions representing content from a respective search resultsweb page; setting, by the server computer, a cookie with a time stampfor the displaying of the plurality of the search suggestions related tothe first search query; transmitting, by the server computer over thenetwork, instructions to the computing device to receive an identifiedweb page component that is part of at least one respective searchresults web page prior to an initial display of the respective searchresults web page by the computing device; transmitting, by the servercomputer over the network to the computing device, during thetransmission of instructions to initially display the plurality ofsearch suggestions related to the first search query, storageinstructions that further cause the computing device to store in amemory of the computing device the web page component that is part ofthe at least one respective search results web page prior to initiallydisplaying the respective search results web page; transmitting, by theserver computer over the network instructions to the computing device,to visibly display the plurality of search suggestions related to thefirst search query transmitted by the server computer without visiblydisplaying the stored web page component during display of the pluralityof search suggestions related to the first search query; receiving, bythe server computer over the network, a second request for a secondsearch suggestion related to a second search query; determining, by theserver computer, that the time period associated with the timestamp ofthe cookie related to the first search query has not elapsed; andtransmitting, by the server computer over the network, upondetermination that the time period related to the first search query hasnot elapsed, instructions to the computing device to display a searchsuggestion related to the second search query prior to initiallydisplaying the respective search results web page and further causingthe computing device to store a web page component associated with asearch results web page corresponding to the search suggestion relatedto the second search query.
 2. The method of claim 1 wherein the webpage component comprises a selected web page asset identified as part ofthe respective search results web page.
 3. The method of claim 1 whereinthe transmitting the instructions to cause the computing device to storea web page component without causing the computing device to display theweb page component further comprises: transmitting, by the servercomputer over the network, instructions to the computing device that setwidth and height of the web page component to zero pixels so that theweb page component is hidden from view when the computing devicedisplays the plurality of search suggestion.
 4. The method of claim 1further comprising: setting, by the server computer over the network, anexpire time for the web page component, the expire time corresponding toa date and time upon which the web page component will no longer bestored by the computing device.
 5. The method of claim 1 wherein theinstructions further causing the computing device to store, in a memoryof the computing device, a web page component further comprises theinstructions further causing the computing device to store, in a browsercache of the computing device, the web page component.
 6. The method ofclaim 1 further comprising: checking that the time period associatedwith the timestamp of the cookie related to the first search query hasnot elapsed and, if the time period has elapsed, transmitting, by theserver computer over the network, instructions for the computing deviceto display a search suggestion related to the second search querywithout causing the computing device to store a web page componentassociated with a search results web page corresponding to the searchsuggestion related to the second search query.
 7. The method of claim 1further comprising: transmitting, by the server computer over thenetwork to the computing device, the search results web page for displayby the computing device, the computing device using the stored web pagecomponent when displaying the search results web page.
 8. The method ofclaim 1, the instructions to receive the identified web page componentare transmitted, by the server computer over the network, in response tothe request for search suggestions.
 9. A method comprising: hosting, bya server computer, a web page component as part of a web page having adomain name; receiving, by the server computer over a network from acomputing device, a first request for search suggestions related to afirst search query that has been input into a search term entry areadisplayed by a web browser executing on the computing device;transmitting in response to the first request, by the server computerover the network to the computing device, instructions for the computingdevice to display a plurality of search suggestions related to the firstsearch query, each of the plurality of search suggestions representingcontent from a respective search results web page; setting, by theserver computer, a cookie with a time stamp for the displaying of theplurality of the search suggestions related to the first search query;transmitting, by the server computer over the network to the computingdevice, a web page component and instructions to store the webpagecomponent prior to an initial display of the respective web page by thecomputing device, the respective webpage corresponding to a respectiveone of the search suggestions related to the first search query;transmitting, by the server computer over the network to the computingdevice, instructions that further cause the computing device to performa DNS lookup of the domain name of the respective web page;transmitting, by the server computer over the network to the computingdevice, during the transmission of instructions to initially display theplurality of search suggestions related to the first search query,storage instructions that further cause the computing device to store,in a memory of the computing device the IP address associated with thedomain name prior to initially displaying the respective web page;further causing, by the server computer, the computing device to visiblydisplay the plurality of search suggestions related to the first searchquery transmitted by the server computer without visibly displaying thestored web page component; receiving, by the server computer over thenetwork, a second request for a second search suggestion related to asecond search query; determining, by the server computer, that the timeperiod associated with the timestamp of the cookie related to the firstsearch query has not elapsed; and transmitting, by the server computerover the network, upon determination that the time period related to thefirst search query has not elapsed, instructions to the computing deviceto display a search suggestion related to the second search query priorto initially displaying the respective search results web page andfurther causing the computing device to store a web page componentassociated with a search results web page corresponding to the searchsuggestion related to the second search query.
 10. The method of claim 9wherein the web page component comprises a selected web page assetidentified as part of the at least one search results web page.
 11. Themethod of claim 9 further comprising: transmitting, by the servercomputer over the network to the computing device, the at least onesearch results web page for display by the computing device, wherein thecomputing device uses the stored IP address associated with the domainname when displaying the at least one search results web page.
 12. Themethod of claim 9 further comprising: transmitting, by the servercomputer over the network to the computing device, the at least onesearch results web page for display by the computing device, thecomputing device using the stored web page component when displaying theat least one search results web page.
 13. A non-transitory computerreadable storage medium storing computer program instructions capable ofbeing executed by a computer processor on a computing device, thecomputer program instructions for: receiving, over a network from acomputing device, a first request for search suggestions related to afirst search query that has been input into a search term entry areadisplayed by a web browser executing on the computing device;transmitting in response to the first request, over the network to thecomputing device, instructions for the computing device to display aplurality of search suggestions related to the first search query, eachof the plurality of search suggestions representing content from arespective search results web page; setting, by the server computer overthe network, a cookie with a time stamp for the displaying of theplurality of the search suggestions related to the first search query;transmitting, by the server computer over the network to the computingdevice, during the transmission of instructions to initially display theplurality of search suggestions related to the first search query,storage instructions that further cause the computing device to store ina memory of the computing device a web page component that is part of atleast one respective search results web page prior to initiallydisplaying the respective search results web page; transmitting, by theserver computer over the network to the computing device, instructionsfurther causing the computing device to visibly display the searchsuggestions related to the first search query transmitted by the servercomputer without visibly displaying the stored web page component duringdisplay of the plurality of search suggestions related to the firstsearch query receiving, by the server computer over the network, asecond request for a second search suggestion related to a second searchquery; determining, by the server computer over the network, that thetime period associated with the timestamp of the cookie related to thefirst search query has not elapsed; and transmitting, by the servercomputer over the network, upon determination that the time periodrelated to the first search query has not elapsed, instructions to thecomputing device to display a search suggestion related to the secondsearch query prior to initially displaying the respective search resultsweb page and further causing the computing device to store a web pagecomponent associated with a search results web page corresponding to thesearch suggestion related to the second search query.
 14. Thenon-transitory computer readable storage medium of claim 13 wherein thecomputer program instructions for transmitting the instructions to causethe computing device to store a web page component without causing thecomputing device to display the web page component further comprisesinstructions for: transmitting instructions to the computing device thatset width and height of the web page component to zero pixels so thatthe web page component is hidden from view when the computing devicedisplays the plurality of search suggestions related to the first searchquery.
 15. The non-transitory computer readable storage medium of claim13 further comprising computer program instructions for: setting anexpire time for the web page component, the expire time corresponding toa date and time upon which the web page component will no longer bestored by the computing device.
 16. The non-transitory computer readablestorage medium of claim 13 further comprising computer programinstructions for: checking that the time period associated with thetimestamp of the cookie related to the first search query has notelapsed and, if the time period has elapsed, transmitting instructionsfor the computing device to display a search suggestion related to thesecond search query without causing the computing device to store a webpage component associated with a search results web page correspondingto the search suggestion related to the second search query.
 17. Thenon-transitory computer readable storage medium of claim 13 furthercomprising computer program instructions for: transmitting, over thenetwork to the computing device, the search results web page for displayby the computing device, the computing device using the stored web pagecomponent when displaying the search results web page.
 18. Anon-transitory computer readable storage medium storing computer programinstructions capable of being executed by a computer processor, thecomputer program instructions comprising instructions for: hosting a webpage component as part of a web page having a domain name; receiving,over a network from a computing device, a first request for searchsuggestions related to a first search query that has been input into asearch term entry area displayed by a web browser executing on thecomputing device; transmitting in response to the first request, overthe network to the computing device, instructions for the computingdevice to display a plurality of search suggestions related to the firstsearch query, each of the plurality search suggestions representingcontent from a respective search results web page; setting, from thecomputing device, a cookie with a time stamp for the displaying of theplurality of the search suggestions related to the first search query;transmitting over the network for storage to the computing device, theweb page component prior to an initial display of the web page at thecomputing device and during the display of the plurality of searchsuggestions related to the first search query, the webpage correspondingto a respective one of the search suggestions related to the firstsearch query; and transmitting, over the network to the computingdevice, instructions that cause the computing device to perform a DNSlookup of the domain name of the web page; transmitting, over thenetwork to the computing device, during the transmission of instructionsto initially display the plurality of search suggestions related to thefirst search query, storage instructions that further cause thecomputing device to store in a memory of the computing device the IPaddress associated with the domain name prior to initially displayingthe web page; further causing, the computing device to visibly displaythe transmitted plurality of search suggestions related to the firstsearch query without visibly displaying the stored web page component;receiving, over the network to the computing device, a second requestfor a second search suggestion related to a second search query;determining, from the computing device, that the time period associatedwith the timestamp of the cookie related to the first search query hasnot elapsed; and transmitting, over the network to the computing device,upon determination that the time period related to the first searchquery has not elapsed, instructions to the computing device to display asearch suggestion related to the second search query prior to initiallydisplaying the respective search results web page and further causingthe computing device to store a web page component associated with asearch results web page corresponding to the search suggestion relatedto the second search query.
 19. The non-transitory computer readablestorage medium of claim 18 further comprising computer programinstructions for: transmitting, over the network to the computingdevice, the at least one search results web page for display by thecomputing device, wherein the computing device uses the stored IPaddress associated with the domain name when displaying the at least onesearch results web page.
 20. The non-transitory computer readablestorage medium of claim 18 further comprising computer programinstructions for: transmitting, over the network to the computingdevice, the at least one search results web page for display by thecomputing device, the computing device using the stored web pagecomponent when displaying the at least one search results web page. 21.A method comprising: receiving, by a computing device, a first searchquery that has been input into a search term entry area displayed by aweb browser executing on the computing device; transmitting, by thecomputing device over a network to a server computer, the first searchquery; receiving, by the computing device over the network from theserver computer, a plurality search suggestions related to the firstsearch query and a web page component, each of the search suggestionsrepresenting content from a respective search results web page such thatat least one search results webpage comprises the web page component;setting, by the computing device, a cookie with a time stamp for thedisplaying of the plurality of the search suggestions related to thefirst search query; storing, by the computing device, in a memory of thecomputing device the web page component that is part of the at least onesearch results web page prior to initially displaying the at least onesearch results web page during the transmission of instructions toinitially display the plurality of search suggestions related to thefirst search query; visibly displaying, by the computing device on adisplay, the plurality of search suggestions related to the first searchquery received from the server computer without visibly displaying thestored web page component during display of the plurality of searchsuggestions; receiving, by the computing device, a second searchsuggestion related to a second search query; determining, by thecomputing device, that the time period associated with the timestamp ofthe cookie related to the first search query has not elapsed; andtransmitting, by the computing device, upon determination that the timeperiod related to the first search query has not elapsed, instructionsto the computing device to display a search suggestion related to thesecond search query prior to initially displaying the respective searchresults web page and further causing the computing device to store a webpage component associated with a search results web page correspondingto the search suggestion related to the second search query.
 22. Themethod of claim 21, wherein the search term entry area is disparate froman address bar of the web browser.